@echo off
title 修复阿里云ECS部署问题

echo ========================================
echo    修复阿里云ECS部署问题
echo ========================================
echo.

set /p ecs_ip="请输入ECS公网IP地址: "

echo.
echo 正在修复部署问题...

echo 步骤1: 修复脚本格式问题
echo 正在修复文件格式...

REM 修复deploy_to_aliyun.sh文件格式
ssh root@%ecs_ip% "sed -i 's/\r$//' /root/websocket_server/deploy_to_aliyun.sh"

REM 修复monitor_websocket.sh文件格式
ssh root@%ecs_ip% "sed -i 's/\r$//' /root/websocket_server/monitor_websocket.sh"

REM 修复patient-websocket.service文件格式
ssh root@%ecs_ip% "sed -i 's/\r$//' /root/websocket_server/patient-websocket.service"

echo ✅ 文件格式修复完成
echo.

echo 步骤2: 重新安装Python依赖
echo 正在安装Python依赖...

ssh root@%ecs_ip% "cd /root/websocket_server && pip3 install websockets==11.0.3"

echo ✅ Python依赖安装完成
echo.

echo 步骤3: 重新配置systemd服务
echo 正在重新配置服务...

REM 重新创建服务文件
ssh root@%ecs_ip% "cat > /etc/systemd/system/patient-websocket.service << 'EOF'
[Unit]
Description=Patient Management WebSocket Server
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/websocket_server
ExecStart=/usr/bin/python3 /root/websocket_server/websocket_server.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF"

echo ✅ 服务文件重新创建完成
echo.

echo 步骤4: 重新加载systemd
echo 正在重新加载systemd...

ssh root@%ecs_ip% "systemctl daemon-reload"

echo ✅ systemd重新加载完成
echo.

echo 步骤5: 启用并启动服务
echo 正在启用和启动服务...

ssh root@%ecs_ip% "systemctl enable patient-websocket.service"
ssh root@%ecs_ip% "systemctl start patient-websocket.service"

echo ✅ 服务启动完成
echo.

echo 步骤6: 检查服务状态
echo 正在检查服务状态...

ssh root@%ecs_ip% "systemctl status patient-websocket.service --no-pager"

echo.

echo 步骤7: 检查端口监听
echo 正在检查端口8080...

ssh root@%ecs_ip% "netstat -tlnp | grep 8080"

echo.

echo 步骤8: 启动监控脚本
echo 正在启动监控脚本...

ssh root@%ecs_ip% "cd /root/websocket_server && chmod +x monitor_websocket.sh && nohup ./monitor_websocket.sh > /dev/null 2>&1 &"

echo ✅ 监控脚本启动完成
echo.

echo 步骤9: 测试WebSocket连接
echo 正在测试WebSocket连接...

ssh root@%ecs_ip% "curl -i -N -H 'Connection: Upgrade' -H 'Upgrade: websocket' -H 'Sec-WebSocket-Version: 13' -H 'Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==' http://localhost:8080/"

echo.

echo ========================================
echo           修复完成！
echo ========================================
echo.
echo 🎉 部署问题已修复！
echo.
echo 当前状态:
echo - WebSocket服务器: 正在运行
echo - 端口8080: 正在监听
echo - 监控脚本: 已启动
echo - systemd服务: 已启用
echo.
echo 管理命令:
echo - 查看状态: ssh root@%ecs_ip% "systemctl status patient-websocket.service"
echo - 查看日志: ssh root@%ecs_ip% "journalctl -u patient-websocket.service -f"
echo - 重启服务: ssh root@%ecs_ip% "systemctl restart patient-websocket.service"
echo.
echo 下一步操作:
echo 1. 更新Android客户端配置
echo 2. 重新编译APK
echo 3. 测试连接
echo.
pause 